// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
#pragma once
#include "MySqlStatementImpl.h"
#include "../../../../ast/statement/SQLCreateStatement.h"

class MySqlCreateServerStatement : virtual public MySqlStatementImpl, virtual public SQLCreateStatement
{
public:
  SQLName_ptr name;
  SQLName_ptr foreignDataWrapper;
  SQLExpr_ptr host;
  SQLExpr_ptr database;
  SQLExpr_ptr user;
  SQLExpr_ptr password;
  SQLExpr_ptr socket;
  SQLExpr_ptr owner;
  SQLExpr_ptr port;

  SHAREDOBJECT(MySqlCreateServerStatement);
  SQLName_ptr getName();

  void setName(SQLName_ptr x);

  SQLName_ptr getForeignDataWrapper();

  void setForeignDataWrapper(SQLName_ptr x);

  SQLExpr_ptr getHost();

  void setHost(SQLExpr_ptr x);

  SQLExpr_ptr getDatabase();

  void setDatabase(SQLExpr_ptr x);

  SQLExpr_ptr getUser();

  void setUser(SQLExpr_ptr x);

  SQLExpr_ptr getPassword();

  void setPassword(SQLExpr_ptr x);

  SQLExpr_ptr getSocket();

  void setSocket(SQLExpr_ptr x);

  SQLExpr_ptr getOwner();

  void setOwner(SQLExpr_ptr x);

  SQLExpr_ptr getPort();

  void setPort(SQLExpr_ptr x);

  void accept0(MySqlASTVisitor_ptr visitor);
};
